The core structures by which a computer (e.g., a desktop PC, laptop, netbook, tablet, or smart phone) operates may include a basic input and output system, or BIOS, an operating system, and other components that may be referred to as occupying a “stack” of software that provides basic functionality for operating a computer. The BIOS may be accessed when a computer is first turned on and booted, and can provide basic functionality for the computer, such as identifying, testing, and initializing system devices, including storage devices that store code that is further needed to boot the computer. The code for the operating system can be stored on such an additional device, and can provide for further booting of the computer until it is fully booted and ready to operate.
An operating system generally serves as an interface between the computer hardware and a user of the computer, and between the hardware and applications that a user loads onto a computer. An operating system may provide a variety of functions. For example, the operating system can provide a graphical user interface (GUI) by which a user of the computer may receive output from the computer and may provide input to the computer. The operating system may also provide a platform on which various third-party applications execute, where the operating system provides services that are needed by the applications, and also provides the mechanism by which the applications can communicate with other resources, such as other applications, peripheral devices (e.g., printers, cameras, etc.), and with services provided by the operating system itself.